// ###############################################################  //
var nation = ['汉族', '蒙古族', '回族', '藏族', '维吾尔族', '苗族', '彝族', '壮族', '布依族', '朝鲜族', '满族', '侗族', '瑶族', '白族', '土家族', '哈尼族', '哈萨克族', '傣族', '黎族', '僳僳族', '佤族', '畲族', '高山族', '拉祜族', '水族', '东乡族', '纳西族', '景颇族', '柯尔克孜族', '土族', '达斡尔族', '仫佬族', '羌族', '布朗族', '撒拉族', '毛南族', '仡佬族', '锡伯族', '阿昌族', '普米族', '塔吉克族', '怒族', '乌孜别克族', '俄罗斯族', '鄂温克族', '德昂族', '保安族', '裕固族', '京族', '塔塔尔族', '独龙族', '鄂伦春族', '赫哲族', '门巴族', '珞巴族', '基诺族', '其他'];
var sex = ['男', '女'];
var classtype = ['教学班', '行政班'];
var studyType = ['选修1', '选修2'];
// ###############################################################  //
$(function () {
    extendValiateboxType();
});
// ###############################################################  //

/* 初始化Comobox
 * input 需要添加下拉框的input
 * comoboxItems 下拉框内容
 * */
function initComobox(input, comoboxItems) {
    if (input == undefined)
        return;
    var data = [];
    for (var i = 0; i < comoboxItems.length; i++) {
        data.push(
            {
                "id": i,
                "text": comoboxItems[i]
            }
        );
    }
    var ph = 'auto';
    if (data.length > 5) {
    	ph = '150';
    }
    input.combobox({
        valueField: 'id',
        textField: 'text',
        panelHeight: ph,
        editable: false,
        data: data
    });
}
function extendValiateboxType() {
    $.extend($.fn.validatebox.defaults.rules, {
        identityCardNumber: {
            validator: function (value, param) {
                if (value.length != 18)
                    return false;
                var valueHeader = value.substr(0, 17);
                var valueTail = value.substr(17, 1);
                var num_letter_reg = /^[A-Za-z0-9]+$/;
                var num_reg = /^[-+]?\d+$/;
                return num_reg.test(valueHeader) && num_letter_reg.test(valueTail);
            },
            message: '身份证号必须为18位，且身份证号前17位必须为数字类型，最后一位可以为字母.'
        },
        number: {
            validator: function (value, param) {
                var reg = /^[-+]?\d+$/;
                return reg.test(value);
            },
            message: '学号必须为数字类型.'
        },
        notNull: {
            validator: function (value, param) {
                return value != null && value != undefined && value != "";
            },
            message: '姓名不能为空.'
        }
    });
}

function gridReload(inp) {
    inp.datagrid("reload");
}

// 选择jquery-easyui当前行数据项
function getSelectedRow(datagrid, index) {
    $('#' + datagrid).datagrid('selectRow', index);
    return $('#' + datagrid).datagrid('getSelected');
}

// 创建iframe
function createFrame(url) {
    var s = '<iframe scrolling="auto" frameborder="0"  src="' + url + '" style="width:100%;height:100%;"></iframe>';
    return s;
}

function pageLoadFilter(data) {

    if (typeof data.length == 'number' && typeof data.splice == 'function') {    // is array
        data = {
            total: data.length,
            rows: data
        }
    }
    var dg = $(this);
    var opts = dg.datagrid('options');
    var pager = dg.datagrid('getPager');
    pager.pagination({
        pageList: [10, 20, 30],//可以设置每页记录条数的列表
        beforePageText: '第',//页数文本框前显示的汉字
        afterPageText: '页    共 {pages} 页',
        displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录',
        onSelectPage: function (pageNum, pageSize) {
            opts.pageNumber = pageNum;
            opts.pageSize = pageSize;
            pager.pagination('refresh', {
                pageNumber: pageNum,
                pageSize: pageSize
            });
            dg.datagrid('loadData', data);
        }
    });
    if (!data.originalRows) {
        data.originalRows = (data.rows);
    }
    var start = (opts.pageNumber - 1) * parseInt(opts.pageSize);
    var end = start + parseInt(opts.pageSize);
    data.rows = (data.originalRows.slice(start, end));
    return data;

}

// DataGrid 分页的设置
function setDataGridPager(datagrid) {
    datagrid.datagrid('getPager').pagination({
        pageSize: 10,//每页显示的记录条数，默认为10
        pageList: [10, 20, 30],//可以设置每页记录条数的列表
        beforePageText: '第',//页数文本框前显示的汉字
        afterPageText: '页    共 {pages} 页',
        displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'
    });
}
// 关闭父窗体Dialog
function closeImportDataDialog(needReloadDataGrid) {
    $('#importDataDialog').window("close");
    gridReload(needReloadDataGrid);
}
// 校验数字
function validNumber(value) {
    var reg = /^[-+]?\d+$/;
    return reg.test(value);
}
// 校验为空
function validNull(value) {
    return value != null && value != undefined && $.trim(value).length > 0;
}
// 校验身份证号
//function validIdNo(value) {
//    if (value.length != 18)
//        return false;
//    var valueHeader = value.substr(0, 17);
//    var valueTail = value.substr(17, 1);
//    var num_letter_reg = /^[A-Za-z0-9]+$/;
//    var num_reg = /^[-+]?\d+$/;
//    return num_reg.test(valueHeader) && num_letter_reg.test(valueTail);
//}

//给url地址增加时间戳，骗过浏览器，不读去缓存
// 如图片的获取，避免缓存读取
function addTimestampToURL(url) {
    var timestamp = (new Date()).valueOf();
    //将时间戳追加到url上面
    url = url + "?t=" + timestamp;
    return url;
}

// ============================================= sweet titles// 鼠标提示，比如鼠标悬浮，显示提示
function showTip(e, entity) {
    var tooltip = "<div id='tooltip'>";
    for (var prop in entity) {
        if (typeof(entity[prop]) == "function") { // 方法
//            entity[prop]();
        } else {
            if ("id" != prop) {
                // p 为属性名称，entity[p]为对应属性的值
                tooltip += "<p>" + prop + ":[" + entity[prop] + "]</p>";
            }
        }
    }
//    allPrpos(tooltip, entity);
    tooltip += "</div>";
    $('body').append(tooltip);
    $('#tooltip')
        .css({
//            "opacity": "0.8",
            "position": "absolute",
            "top": (e.clientY) + "px", // 原来使用pageX,pageY,但是IE7不支持，可以使用IE与Firefox共有clientX,clientY
            "left": (e.clientX) + "px"
        }).show('fast');
}

function hideTip() {
    $('#tooltip').remove();
}

//function tip(entity) {
//    $(this).bind("mouseover",function () {
//        var tooltip = "<div id='tooltip'>";
//        allPrpos(tooltip, entity);
//        tooltip += "</div>";
//        $('body').append(tooltip);
//        $('#tooltip')
//            .css({
//                "opacity": "0.8",
//                "top": (e.pageY + 20) + "px",
//                "left": (e.pageX + 10) + "px"
//            }).show('fast');
//    }).bind("mouseout", function () {
//            $('#tooltip').remove();
//        });
//}

/*
 * 用来遍历指定对象所有的属性名称和值
 * obj 需要遍历的对象
 */
function allPrpos(tooltip, entity) {
    for (var prop in entity) {
        if (typeof(entity[prop]) == "function") { // 方法
//            entity[prop]();
        } else {
            if ("id" != prop) {
                // p 为属性名称，entity[p]为对应属性的值
                tooltip += "<p>" + prop + ":[" + entity[prop] + "]</p>";
            }
        }
    }
}

//----------------------------//
function validUploadExcelFile() {
    // 上传文件不能为空，格式必须为xsl和xlsx
    var flag = true;
    var filepath = $("input[name='file']").val();
    if (filepath == undefined || $.trim(filepath) == "") {
        $.messager.alert("操作提示", "请首先选择文件！", 'warning');
        flag = false;
    } else {
        var fileArr = filepath.split("//");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        var filetype = fileTArr[fileTArr.length - 1];
        if (filetype != "xls" && filetype != "xlsx") {
            $.messager.alert("操作提示", "上传文件必须为Excel文件！", 'warning');
            flag = false;
        }
    }
    return flag;
}

//----------------------------//
function validUploadJpgFile() {
    // 上传文件不能为空，格式必须为Jpg和png
    var flag = true;
    var filepath = $("#picture").val();
    if (filepath == undefined || $.trim(filepath) == "") {
        $.messager.alert("操作提示", "请首先选择图片文件！", 'warning');
        $("#picture").val("");
        flag = false;
    } else {
        var fileArr = filepath.split("//");
        var fileTArr = fileArr[fileArr.length - 1].toLowerCase().split(".");
        var filetype = fileTArr[fileTArr.length - 1];
        if (filetype != "jpg" && filetype != "png") {
            $.messager.alert("操作提示", "上传文件必须为JPG/PNG图片文件！", 'warning');
            $("#picture").val("");
            flag = false;
        }
    }
    return flag;
}

function validIdNo(value) {
    //身份证的地区代码对照
    var aCity = { 11: "北京", 12: "天津", 13: "河北", 14: "山西", 15: "内蒙古", 21: "辽宁", 22: "吉林", 23: "黑龙江", 31: "上海", 32: "江苏", 33: "浙江", 34: "安徽", 35: "福建", 36: "江西", 37: "山东", 41: "河南", 42: "湖北", 43: "湖南", 44: "广东", 45: "广西", 46: "海南", 50: "重庆", 51: "四川", 52: "贵州", 53: "云南", 54: "西藏", 61: "陕西", 62: "甘肃", 63: "青海", 64: "宁夏", 65: "新疆", 71: "台湾", 81: "香港", 82: "澳门", 91: "国外" };
    //获取证件号码
    var person_id = value;
    //合法性验证
    var sum = 0;
    //出生日期
    var birthday;
    //验证长度与格式规范性的正则
    var pattern = new RegExp(/(^\d{15}$)|(^\d{17}(\d|x|X)$)/i);
    if (pattern.exec(person_id)) {
        //验证身份证的合法性的正则
        pattern = new RegExp(/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/);
        if (pattern.exec(person_id)) {
            //获取15位证件号中的出生日期并转位正常日期
            birthday = "19" + person_id.substring(6, 8) + "-" + person_id.substring(8, 10) + "-" + person_id.substring(10, 12);
        }
        else {
            person_id = person_id.replace(/x|X$/i, "a");
            //获取18位证件号中的出生日期
            birthday = person_id.substring(6, 10) + "-" + person_id.substring(10, 12) + "-" + person_id.substring(12, 14);

            //校验18位身份证号码的合法性
            for (var i = 17; i >= 0; i--) {
                sum += (Math.pow(2, i) % 11) * parseInt(person_id.charAt(17 - i), 11);
            }
            if (sum % 11 != 1) {
                return false;
            }
        }
        //检测证件地区的合法性
        if (aCity[parseInt(person_id.substring(0, 2))] == null) {
            return false;
        }
        var dateStr = new Date(birthday.replace(/-/g, "/"));

        if (birthday != (dateStr.getFullYear() + "-" + Append_zore(dateStr.getMonth() + 1) + "-" + Append_zore(dateStr.getDate()))) {
            return false;
        }
    }
    else {
        return false;
    }
    return true;
}

function Append_zore(temp)
{
    if(temp<10)
    {
        return "0"+temp;
    }
    else
    {
        return temp;
    }
}